::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::
The Liberty BASIC Wire Frame Library (LBWF) is a collection of 50 functions written with native Liberty BASIC commands which allow [Liberty BASIC] programmers to easily create and manipulate images of three-dimensional wire frame objects. A wire frame object is an object whose edges are visible, but whose surfaces are transparent. A wire frame cube looks like a cube made from the wire of a coat hanger.
LBWF was first introduced in [this article] in [issue 134] of the Liberty BASIC Newsletter. The original release of the library was designated 0.5. One month later, I released version 0.6 with [this aricle] of newsletter issue [135].
Through version 0.6, LBWF offered nine different primite objects; the ability to hide objects; the ability to move and rotate objects about three different axes; and the ability to assign objects to custom groups, and to manipulate objects based on their group identity.
The purpose of this article is to let you know what to expect when Version 1.0 debuts within the next few versions of the newsletters.

A spacecraft created with the help of the
complex object function.
One thing that I've decided with the release of version 1.0 is to give the library a "friendly name" in addition to its formal name. It's formal name will remain The Liberty BASIC Wire Frame Library Version 1.0. The friendly name will simply be Wire 1.0. I like it because it's easy, simple, and enables us to discuss the library without typing capital L, capital B, capital W, capital F...
More importantly, Wire 1.0 will have two new interesting functions. The first function will allow programmers to create complex objects. It is called, well, FF.LBWF.CreateComplexObject(). A complex object can be thought of as anything other than the nine primitive, standard objects that are part of basic Wire 1.0. To create a complex object, the user will have to create the data for the object in an external ascii file. Then, the function will read the data, and store the information in Wire's internal database.
The second function is called FF.LBWF.RequestObjectNameFromXY$(). This function takes as input the x- and y-coordinates of a pixel in the graphic box where Wire's images are being displayed. It returns the name of the object which has a line which passes through (or near) that pixel.
Why is this particular function exciting? Because it will allow the user to select a 3D object by merely clicking on one of the lines that comprise the object. So, for example, by clicking on a 3D object, the user can make it spin in space, provided all the appropriate rotation functions are called.
At this time, Wire 1.0's functions are complete, but I've yet to develop an article that documents the new functions. Expect Wire 1.0 by issue 138.
Tom Nally Steelweaver52@aol.com